package com.example.csmall.product.mapper;


import com.example.csmall.product.pojo.entity.Album;
import com.example.csmall.product.pojo.vo.AlbumListItemVO;
import com.example.csmall.product.pojo.vo.AlbumStandardVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AlbumMapper {

    /**
     * 添加一条数据
     * @param album
     * @return
     */
    int insert(Album album);

    /**
     * 添加多条记录
     * @param albumList
     * @return
     */
    int insertBatch(List<Album> albumList);

    /**
     * 根据id删除记录
     * @param id
     * @return
     */
    int deleteById(Long id);

    /**
     * 批量根据id删除数据
     * @param ids
     * @return
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据id修改数据
     * @param album
     * @return
     */
    int updateInfoById(Album album);

    /**
     * 统计表中信息
     * @return 受影响行数
     */
    int count();

    /**
     * 统计name记录的信息
     * @param name 相册名称
     * @return 统计信息
     */
    int countName(String name);

    /**
     * 根据name统计数量
     * @param name
     * @return
     */
    int countByName(String name);

    /**
     * 根据name和非此id统计数量
     * @param id
     * @param name
     * @return 行数
     */
    int countByNameAndNotId(@Param("id") Long id,@Param("name") String name);

    /**
     * 根据ID查询数据
     * @param id 要查询的id
     * @return 如果没有就返回null
     */
    AlbumStandardVO getStandardById(Long id);

    /**
     * 查询表中所有字段
     * @return 返回存放所有记录的list集合
     */
    List<AlbumListItemVO> list();
}
